// 获取dom,登录注册表单
const log = document.querySelector(".log")
const reg = document.querySelector(".reg")
// 获取dom,登录注册切换按钮
const registerBtn = document.querySelector(".register")
const loginBtn = document.querySelector(".login")
// 表单容器
const container = document.querySelector(".container")

// 点击登录按钮
const loginned = document.querySelector(".loginned")
const registered = document.querySelector(".registered")
console.log(registered);

// 输入框
const logUserInp = document.querySelector(".logUserInp")
const logPassInp = document.querySelector(".logPassInp")
const regUserInp = document.querySelector(".regUserInp")
const regPassInp = document.querySelector(".regPassInp")
const regRepassInp = document.querySelector(".regRepassInp")

import axios from "/client/axios.js"

// 设置默认根地址

// 绑定事件
// 前往注册
registerBtn.onclick = function () {
  // 表单容器高度调高，隐藏登录表单，显示注册表单
  log.style.display = "none"
  reg.style.display = "block"
  container.style.height = "480px"
  return false
}
loginBtn.onclick = function () {
  // 表单容器高度调低，隐藏注册表单，显示登录表单
  reg.style.display = "none"
  log.style.display = "block"
  container.style.height = "410px"
  return false
}

// 登录
loginned.onclick = function (e) {
  e.preventDefault()
  const userVal = logUserInp.value
  const passVal = logPassInp.value
  if (!/^.{2,10}$/.test(userVal) || !/^[0-8a-zA-Z]{6,20}$/.test(passVal)) {
    return alert("用户名或密码格式不对")
  }
  login(userVal, passVal)
}

// 注册
registered.onclick = function (e) {
  e.preventDefault()
  const userVal = regUserInp.value
  const passVal = regPassInp.value
  const repassVal = regRepassInp.value
  if (!/^.{2,10}$/.test(userVal) || !/^[0-8a-zA-Z]{6,20}$/.test(passVal)) {
    return alert("用户名或密码格式不对")
  }
  if (passVal !== repassVal) {
    return alert("两次密码输入不一致")
  }

  register(userVal, passVal, repassVal)
}

// 登录
async function login(username, password) {
  const { data: res } = await axios.post("/user/login", { username, password })
  if (res.code == -2) {
    alert("用户名或密码错误")
  }
  if (res.code == 1) {
    alert("登录成功")
    storeToken(res)
    // 成功则跳转到首页
    location.href = "/client/index"
  }
}

// 注册
async function register(username, password, repassword) {
  const { data: res } = await axios.post("/user/register", { username, password, repassword })
  if (res.code == -1) {
    return alert("用户名已存在")
  }
  if (res.code == -2) {
    return alert("用户名或密码错误")
  }
  if (res.code == 1) {
    alert("注册成功")
    storeToken(res)
    // 成功则跳转到首页
    location.href = "/client/index"
  }
}

// 将用户返回信息和token保存在本地
function storeToken({ data, token }) {
  // 存储在本地中
  localStorage.setItem("user", JSON.stringify(data))
  localStorage.setItem("token", JSON.stringify(token))
}